package cn.taskservice.jwt.utils;

import java.security.SecureRandom;
import java.util.Base64;

/**
 * 生产环境 JWT 密钥生成工具
 * 生成高强度随机密钥，Base64 编码输出，方便配置使用
 */
public class JwtSecretGeneratorUtil {

    private static final SecureRandom secureRandom = new SecureRandom();

    /**
     * 生成指定字节长度的 Base64 编码密钥
     * @param byteLength 生成密钥的字节长度，推荐32（256位）
     * @return Base64 编码的密钥字符串
     */
    public static String generateSecret(int byteLength) {
        if (byteLength <= 0) {
            throw new IllegalArgumentException("密钥字节长度必须大于0");
        }
        byte[] keyBytes = new byte[byteLength];
        secureRandom.nextBytes(keyBytes);
        return Base64.getEncoder().encodeToString(keyBytes);
    }

    public static void main(String[] args) {
        // 默认生成256位密钥
        int defaultLength = 32;
        String secret = generateSecret(defaultLength);
        System.out.println("生成的 JWT secret (Base64):");
        System.out.println(secret);
    }
}
